#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTcpSocket>
#include <QUdpSocket>
#include <QThread>
#include <QMainWindow>
#include <QImage>
#include <QBuffer>
#include <QMainWindow>
#include <QTcpSocket>
#include <QJsonDocument>
#include <QJsonParseError>
#include <QJsonObject>
#include <QJsonValue>
#include <QJsonArray>
#include <QVBoxLayout>
#include <QLabel>
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraInfo>
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>
#include <QLabel>
#include <QCamera>
#include <QCameraViewfinder>
#include <QCameraImageCapture>
#include <QCameraInfo>
#include <QDebug>
#include <QPainter>
#include <fstream>
#include <vector>
#include <QFile>
#include <QByteArray>
#include <QUdpSocket>
#include <QMessageBox>
#include <QTimer>

#include <QMainWindow>
#include <QCamera>
#include <QCameraImageCapture>
#include <QCameraInfo>
#include <QCameraViewfinder>
#include <QVBoxLayout>
#include <QMessageBox>
#include <QProcess>
#include <QSocketNotifier>
#include <QTcpServer>

#include "filesender.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    void onImageCaptured(int id, const QImage &preview);
    void btn();
public:
    void startFileSending(const QString &filePath, const QString &ipAddress, quint16 port);


private:
    Ui::MainWindow *ui;
    //* tcp;//接受服务器发送过来的识别数据
    QTcpServer* tcp = nullptr;
    QUdpSocket* udpSocket;//发送图片的套接字数据
    QThread *fileSenderThread;//定义一个发送图片的线程
    FileSender *fileSender;//定义一个发送图片的类
    QCamera *camera;// 摄像头对象，用于捕获视频流
    QCameraImageCapture *imageCapture;// 图片捕获对象，用于从摄像头捕获静态图像
    QCameraViewfinder *viewfinder;// 摄像头取景器，用于显示摄像头的实时视图
};

#endif // MAINWINDOW_H
